//
// Copyright (c) 2011 Alex Nesterenko
//

#ifndef NANE_POSIXREADFILE__H
#   define  NANE_POSIXREADFILE__H

#   include "nane/core/crt/POSIX/POSIXFileBase_.h"
#   include "nane/core/SubSystemProduct.h"

namespace nane 
{
    class POSIXReadFile
        : public POSIXFileBase
        , public SubSystemProduct<FileSystem::Implementation, POSIXReadFile, IReadFile>
    {
    public:
        POSIXReadFile( FileSystem::Implementation* _creator, int _interface, const char* _filename );
        ~POSIXReadFile();
        
    public:
        void seek( uint32 _pos )
        {
            POSIXFileBase::seek(_pos);
        }
        
        uint32 tell()
        {
            return POSIXFileBase::tell();
        }
        
        uint32 size() const
        {
            return POSIXFileBase::size();
        }
        
        uint32 read( byte* _buffer, uint32 _count );
        
    };
} // namespace nane

#endif	// NANE_POSIXREADFILE__H
